1. Field of the Invention
This invention relates to trace data granularity and more particularly relates to automatically and dynamically adjusting the granularity of trace data.
2. Description of the Related Art
Data processing systems such as mainframe computers, servers, data storage systems, and the like typically record trace data. Trace data may include error data such as error codes, diagnostic data that is used to track the state of the system such as register values, software instruction values, memory addresses and the like, and records of system events such as inter-component communications, the loading of software, and the like.
The data processing system often includes one or more components. Each component may record trace data specific to the component in local memory. For example, a storage device may record trace data specific to the storage device in the storage device's local memory. In an alternate embodiment, a component records trace data specific to the component in a central memory such as the memory of a control unit.
Trace data is often stored in a buffer with a fixed size. For example, a component such as the storage device may allocate one hundred megabytes (100 MB) for a trace data buffer. The component records the most recent trace data to the buffer. In one embodiment, the component may delete the oldest trace data in the buffer to prevent the trace data from overflowing the buffer. Thus the component retains the most recent trace data. In certain embodiments, the component periodically downloads the trace data from the buffer. For example, the component may save the trace data to magnetic tape, or transmit the trace data to a service center.
During the development of software or the integration of new hardware and software, an administrator may direct the data processing system and the components of the system to record extensive amounts of trace data that provide a highly granular view of the system's operations. The administrator, an integrator, or a developer may use the high granularity trace data to find and correct system problems or to verify that the system is performing as designed. High granularity trace data may rapidly fill a trace data buffer, but may also provide the detailed information required to identify and correct a problem
Unfortunately, if a significant event such as a serious error occurs and is recorded as high granularity trace data in the buffer during normal operations, subsequent high granularity trace data may overwrite the event before the administrator could access the trace data in the buffer. Therefore during normal operations, the administrator may direct the data processing system to record trace data with fewer details providing a low granularity view of system operations. Although the low granularity trace data is less useful for identifying and correcting problems, the low granularity of the trace data allows trace data for a longer time interval to be maintained in the trace buffer. In addition, recording low granularity trace data reduces the overhead of recording trace data and the amount of data that must be downloaded such as to magnetic tape.
Unfortunately, significant events may occur during normal operation when the data processing system is recording the low granularity trace data. Yet the administrator or a service engineer may require the high granularity trace data in order to identify and correct problems. High granularity trace data is particularly useful in capturing and identifying infrequent or transient events, and may be highly useful if the high granularity trace data is recorded for specified circumstances.
From the foregoing discussion, it should be apparent that a need exists for an apparatus, system, and method that automatically and dynamically adjust trace data granularity. Beneficially, such an apparatus, system, and method would allow a system to record high granularity trace data under specified conditions while recording lower granularity trace data when high granularity trace data is not needed.